package KuangShen.ZhuJieHeFanShe;
//类加载器的作用
/*

 */

public class test07 {
    public static void main(String[] args) {
        ClassLoader systemClassLoader =ClassLoader.getSystemClassLoader(); //获取系统类的加载器
        System.out.println(systemClassLoader);
        ClassLoader parent=systemClassLoader.getParent();//获取系统类加载器的父类加载器（扩展类加载器）
        System.out.println(parent);
        ClassLoader parent1=parent.getParent();//获取扩展类加载器的父类加载器（根加载器：因为使用C++编写所以返回Null）
        System.out.println(parent1);
//      测试当前类是哪个加载器加载的
        try {
            ClassLoader classLoader=Class.forName("KuangShen.ZhuJieHeFanShe.test07").getClassLoader();
            System.out.println(classLoader);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
//      测试jdk的内置类是哪个加载器加载的
        ClassLoader classLoader1= null;
        try {
            classLoader1 = Class.forName("java.lang.Override").getClassLoader();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(classLoader1);
//        如何获取系统类加载器可以加载的路径(即类可以在这些地方加载)
        System.out.println(System.getProperty("java.class.path"));
        /*
        C:\Users\a\Desktop\新项目\创想软件\out\production\Java;
        D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.3\plugins\Kotlin\kotlinc\lib\kotlin-stdlib.jar;
        D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.3\plugins\Kotlin\kotlinc\lib\kotlin-reflect.jar;
        D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.3\plugins\Kotlin\kotlinc\lib\kotlin-test.jar;
        C:\Users\a\Desktop\新项目\创想软件\Java\lib\groovy-astbuilder-4.0.2.jar;
        等等
         */
/*
    源程序（.java文件）——>java编译器——>字节码（.class文件）——>类装载器——>字节码校验器——>解释器——>操作系统平台
 */
    }
}
